Remote presentation protocols such as the ICA protocol manufactured by Citrix Systems, Inc., of Ft. Lauderdale, Fla., the X protocol by the X.org Foundation, the Virtual Network Computing protocol of AT&T Corp., or the RDP protocol, manufactured by Microsoft Corporation of Redmond, Wash., are inherently stateful. In order to view a particular point in a stream of recorded presentation protocol data, playback of the stream must begin from the very beginning of stream and played back sequentially until the particular point is encountered.
Many conventional methods for session recording operate by taking screen snapshots periodically, and some of these increase the snapshot frequency in response to indications of potential interest gleaned from session activity. The sequences of images may be viewed as slide shows or using image collection management tools. Other methods may record to frame-based digital video formats such as MPG or AVI, and these are viewed with an appropriate media player such as Windows Media Player or the QuickTime player. Many conventional methods lack the ability to reduce review time by eliminating sections showing interactions with certain windows or applications.
Some conventional methods enable playback of recorded sessions at multiples of real-time rate. A user can choose to play back at any one of those multiples, and may change the speed multiplier during playback. However, because the user is unaware of what is about to be rendered, they are prone to turning the speed up during sections of low interest and then missing details when sections of higher interest start. Furthermore, even speeds many times faster than real time are subjectively slow when reviewing lengthy sections of insignificant user activity.
Many conventional systems attempt to optimize playback by minimizing snapshot generation to increase the speed of stream traversal. In some instances, some of these systems perform less frequent screen snapshots until significant activity is detected, and then increasing the frequency of snapshots. Some of these systems may suffer the drawback of losing state when inputs and state changes between snapshots are not captured.